package com.ktwlsoft.fundmanage.domain.entity.pictureconfig;

import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 要件表
 *
 * @author Name on 2019/10/8 12:02
 * @version 1.0
 */
@Entity
@Table(name = "sign_credential")
@Getter
@Setter
public class SignCredential implements Serializable {

    /**成像表id*/
    @Id
    @ApiModelProperty(value = "成像表id")
    @Column(name = "credential_id",columnDefinition = "VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '成像表id'")
    private String credentialId;

    /**业务id*/
    @ApiModelProperty(value = "业务id")
    @Column(name = "busi_id",columnDefinition = "VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '业务id'")
    private String busiId;

    /**资料类型，原件、复印件、未知*/
    @ApiModelProperty(value = "资料类型，原件、复印件、未知")
    @Column(name = "credential_type",columnDefinition = "VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '资料类型，原件、复印件、未知'")
    private String credentialType;

    /**资料名称*/
    @ApiModelProperty(value = "资料名称")
    @Column(name = "credential_name",columnDefinition = "VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '资料名称'")
    private String credentialName;

    /**资料份数*/
    @ApiModelProperty(value = "资料份数")
    @Column(name = "credential_count",columnDefinition = "INT(11) NULL DEFAULT NULL COMMENT '资料份数'")
    private Integer credentialCount;

    /**资料页数*/
    @ApiModelProperty(value = "资料页数")
    @Column(name = "credential_page",columnDefinition = "INT(11) NULL DEFAULT NULL COMMENT '资料页数'")
    private Integer credentialPage;

    /**文件类型，0图片文件、1文档文件、2视频文件、3其他文件，4不限*/
    @ApiModelProperty(value = "文件类型，0图片文件、1文档文件、2视频文件、3其他文件，4不限")
    @Column(name = "file_type",columnDefinition = "INT(11) NULL DEFAULT NULL COMMENT '文件类型，0图片文件、1文档文件、2视频文件、3其他文件，4不限'")
    private Integer fileType;

    /**资料描述*/
    @ApiModelProperty(value = "资料描述")
    @Column(name = "description",columnDefinition = "VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '资料描述'")
    private String description;

    /**排序，取要件配置表中的sort_id*/
    @ApiModelProperty(value = "排序，取要件配置表中的sort_id")
    @Column(name = "sort_id",columnDefinition = "INT(11) NULL DEFAULT NULL COMMENT '排序，取要件配置表中的sort_id'")
    private Integer sortId;

    /**写入位置，相关资料上传时，当前业务所处的步骤*/
    @ApiModelProperty(value = "写入位置，相关资料上传时，当前业务所处的步骤")
    @Column(name = "write_locality",columnDefinition = "VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '写入位置，相关资料上传时，当前业务所处的步骤'")
    private String writeLocality;

    /**父级id，即所处文件夹*/
    @ApiModelProperty(value = "父级id，即所处文件夹")
    @Column(name = "parent_id",columnDefinition = "VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '父级id，即所处文件夹'")
    private String parentId;

    /**内网操作类型，0只读、1可删除、2无、3无成像，默认为1*/
    @ApiModelProperty(value = "内网操作类型，0只读、1可删除、2无、3无成像，默认为1")
    @Column(name = "inter_operate_type",columnDefinition = "INT(11) NULL DEFAULT NULL COMMENT '内网操作类型，0只读、1可删除、2无、3无成像，默认为1'")
    private Integer interOperateType;

    /**外网操作类型，0只读、1可删除、2无、3无成像，默认为1*/
    @ApiModelProperty(value = "外网操作类型，0只读、1可删除、2无、3无成像，默认为1")
    @Column(name = "net_operate_type",columnDefinition = "INT(11) NULL DEFAULT NULL COMMENT '外网操作类型，0只读、1可删除、2无、3无成像，默认为1'")
    private Integer netOperateType;

    /**所属业务功能模块代码 区分在那个功能模块下显示与不显示*/
    @ApiModelProperty(value = "所属业务功能模块代码 区分在那个功能模块下显示与不显示")
    @Column(name = "busi_code",columnDefinition = "VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '所属业务功能模块代码 区分在那个功能模块下显示与不显示'")
    private String busiCode;

    /**创建时间*/
    @ApiModelProperty(value = "创建时间")
    @Column(name = "create_time",columnDefinition = "DATETIME(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间'")
    private Date createTime;

    /**创建人*/
    @ApiModelProperty(value = "创建人")
    @Column(name = "create_user",columnDefinition = "VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人'")
    private String createUser;

    /**更新时间*/
    @ApiModelProperty(value = "更新时间")
    @Column(name = "modify_time",columnDefinition = "DATETIME(0) NULL DEFAULT NULL COMMENT '更新时间'")
    private Date modifyTime;

    /**更新人*/
    @ApiModelProperty(value = "更新人")
    @Column(name = "modify_user",columnDefinition = "VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新人'")
    private String modifyUser;

    /**删除状态:0-未删除,1-已删除,默认0*/
    @ApiModelProperty(value = "删除状态:0-未删除,1-已删除,默认0")
    @Column(name = "delete_mark",columnDefinition = "SMALLINT(1) NOT NULL DEFAULT 0 COMMENT '删除状态:0-未删除,1-已删除,默认0'")
    private Integer deleteMark;

    /**备注*/
    @ApiModelProperty(value = "备注")
    @Column(name = "remark",columnDefinition = "VARCHAR(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注'")
    private String remark;

    /**关键字*/
    @ApiModelProperty(value = "关键字")
    @Transient
    private String keyWords;

    @Transient
    private List<SignCredentialInfo> infoList;
}